#include "PBDATA.H"

static uchar code indexs[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};  // 行位码

static uchar tab[8] = {0};   // 列位码

// 清屏函数
void Matrix_Clear()
{
	COLP = 0x00;
}

// 生成列码
void Matrix_GenerateTab(uchar rowIndexs[], uchar colIndexs[], uchar length) 
{
	uchar i = 0;
	// 清掉上次形成的列码
	for(i = 0; i < 8; i++) {
		tab[i] = 0;
	}
	
	//形成列位码
	for(i = 0; i < length; i++) {
		// rowIndexs[i] 行显示的列追加 tab[rowIndexs[i]];
		tab[rowIndexs[i]] += indexs[colIndexs[i]];
	}
}

// 使用编码点亮点阵
void Matrix_ShowPointByCode()
{
	uchar i = 0;
	
	// 逐行显示 
	for(i = 0; i < 8; i++) {
		Matrix_Clear();
		ROWP = ~indexs[i];
		COLP = tab[i];  
	}
}

void Matrix_ShowAll() 
{
	uchar i = 0;
	
	// 逐行显示 
	for(i = 0; i < 8; i++) {
		Matrix_Clear();
		ROWP = ~indexs[i];
		COLP = 0xFF;  
	}
}

